home *** CD-ROM | disk | FTP | other *** search
/ Aminet 8 / Aminet 8 (1995)(GTI - Schatztruhe)[!][Oct 1995].iso / Aminet / dev / lang / smalltlk.lha / Smalltalk3.09 / src / env.h < prev    next >
C/C++ Source or Header  |  1995-08-26  |  5KB  |  223 lines

  1. /*
  2.     Little Smalltalk, version two
  3.     Written by Tim Budd, Oregon State University, July 1987
  4.  
  5.     environmental factors
  6.  
  7.     This include file gathers together environmental factors that
  8.     are likely to change from one C compiler to another, or from
  9.     one system to another.  Please refer to the installation 
  10.     notes for more information.
  11.  
  12.     for systems using the Make utility, the system name is set
  13.     by the make script.
  14.     other systems (such as the Mac) should put a define statement
  15.     at the beginning of the file, as shown below
  16. */
  17.  
  18. /*
  19. systems that don't use the Make utility should do something like this:
  20. # define LIGHTC
  21. */
  22.  
  23. /*=============== rules for various systems ====================*/
  24.  
  25. # ifdef B42
  26.     /* Berkeley 4.2, 4.3 and compatible running tty interface */
  27.         /*   which include: */
  28.         /* sequent balance */
  29.         /* Harris HCX-7 */
  30.         /* sun workstations */
  31.  
  32. typedef unsigned char byte;
  33.  
  34. # define byteToInt(b) (b)
  35.  
  36. /* this is a bit sloppy - but it works */
  37. # define longCanBeInt(l) ((l >= -16383) && (l <= 16383))
  38.  
  39. # define STRINGS
  40. # define SIGNAL
  41.  
  42. # endif
  43.  
  44. # ifdef SYSV
  45.     /* system V systems including: */
  46.     /*    HP-UX for the HP-9000 series */
  47.     /*     TEK 4404 with some modifications (see install.ms) */
  48.  
  49. typedef unsigned char byte;
  50.  
  51. # define byteToInt(b) (b)
  52.  
  53. # define longCanBeInt(l) ((l >= -16383) && (l <= 16383))
  54.  
  55. # define STRING
  56.  
  57. # endif
  58.  
  59. # ifdef TURBOC
  60.     /* IBM PC and compatiables using the TURBO C compiler */
  61.     
  62.     /* there are also changes that have to be made to the 
  63.         smalltalk source; see installation notes for
  64.         details */
  65.  
  66. typedef unsigned char byte;
  67.  
  68. # define byteToInt(b) (b)
  69.  
  70. # define longCanBeInt(l) ((l >= -16383) && (l <= 16383))
  71.  
  72. # define STRING
  73. # define ALLOC
  74. # define BINREADWRITE
  75. # define CTRLBRK
  76. # define PROTO
  77. # define obtalloc(x,y) (struct objectStruct huge *) farcalloc((unsigned long) x, (unsigned long) y)
  78.  
  79. #endif
  80.  
  81. # ifdef ATARI
  82.     /* Atari st 1040 - still exprimental */
  83.     
  84. typedef unsigned char byte;
  85.  
  86. # define byteToInt(b) (b)
  87.  
  88. # define longCanBeInt(l) ((l >= -16383) && (l <= 16383))
  89.  
  90. # define STRING
  91. # define ALLOC
  92. # define BINREADWRITE
  93. # define obtalloc(x,y) (struct objectStruct *) calloc((unsigned) x, (unsigned) y)
  94.  
  95. #endif
  96.  
  97. # ifdef AZTEC_C
  98.     /* Amiga w/Manx Aztec C 5.2a - still exprimental */
  99.     
  100. typedef unsigned char byte;
  101.  
  102. # define byteToInt(b) (b)
  103.  
  104. # define longCanBeInt(l) ((l >= -16383) && (l <= 16383))
  105.  
  106. # define STRING
  107. # define BINREADWRITE
  108. # define obtalloc(x,y) (struct objectStruct *) calloc((unsigned) x, (unsigned) y)
  109. # define system(x) Execute(x, 0L, 0L)
  110.  
  111. #endif
  112.  
  113. # ifdef AMIGA
  114.     /* Amiga w/GNU C 2.6.3 - still experimental */
  115.     
  116. typedef unsigned char byte;
  117.  
  118. # define byteToInt(b) (b)
  119.  
  120. # define longCanBeInt(l) ((l >= -16383) && (l <= 16383))
  121.  
  122. # define STRING
  123. # define obtalloc(x,y) (struct objectStruct *) calloc((unsigned) x, (unsigned) y)
  124. # define system(x) Execute(x, 0L, 0L)
  125.  
  126. #endif
  127.  
  128. # ifdef LIGHTC
  129.         /* Macintosh using Lightspeed C compiler */
  130.         /* see install.ms for other changes */
  131.  
  132. typedef unsigned char byte;
  133.  
  134. # define byteToInt(b) (b)
  135.  
  136. # define longCanBeInt(l) ((l >= -16383) && (l <= 16383))
  137.  
  138. # define STRINGS
  139. # define BINREADWRITE
  140. # define STDWIN
  141. # define NOARGC
  142. # define PROTO
  143. # define NOSYSTEM
  144. # define obtalloc(x,y) (struct objectStruct *) calloc((unsigned) x, (unsigned) y)
  145.  
  146. # endif
  147.  
  148. # ifdef VMS 
  149.     /* VAX VMS */
  150.  
  151. typedef unsigned char byte;
  152.  
  153. # define byteToInt(b) (b)
  154.  
  155. # define longCanBeInt(l) ((l >= -16383) && (l <= 16383))
  156.  
  157. # define STRING
  158. # define NOARGC
  159.  
  160. # endif
  161.  
  162. /* ======== various defines that should work on all systems ==== */
  163.  
  164. # define streq(a,b) (strcmp(a,b) == 0)
  165.  
  166. # define true 1
  167. # define false 0
  168.  
  169.     /* define the datatype boolean */
  170. # ifdef NOTYPEDEF
  171. # define boolean int
  172. # endif
  173. # ifndef NOTYPEDEF
  174. typedef int boolean;
  175. # endif
  176.  
  177.     /* define a bit of lint silencing */
  178.     /*  ignore means ``i know this function returns something,
  179.         but I really, really do mean to ignore it */
  180. # ifdef NOVOID
  181. # define ignore
  182. # define noreturn
  183. # define void int
  184. # endif
  185. # ifndef NOVOID
  186. # define ignore (void)
  187. # define noreturn void
  188. # endif
  189.  
  190. /* prototypes are another problem.  If they are available, they should be
  191. used; but if they are not available their use will cause compiler errors.
  192. To get around this we define a lot of symbols which become nothing if
  193. prototypes aren't available */
  194. # ifdef PROTO
  195.  
  196. # define X ,
  197. # define OBJ object
  198. # define OBJP object *
  199. # define INT int
  200. # define BOOL boolean
  201. # define STR char *
  202. # define FLOAT double
  203. # define NOARGS void
  204. # define FILEP FILE *
  205. # define FUNC ()
  206.  
  207. # endif
  208.  
  209. # ifndef PROTO
  210.  
  211. # define X
  212. # define OBJ
  213. # define OBJP
  214. # define INT
  215. # define BOOL
  216. # define STR
  217. # define FLOAT
  218. # define NOARGS
  219. # define FILEP
  220. # define FUNC
  221.  
  222. # endif
  223.